package 责任链模式;

import 责任链模式.demo2.*;

/**
 * 责任链模式（Chain of Responsibility Pattern）为请求创建了一个接收者对象的链
 * 这种模式给予请求的类型，对请求的发送者和接收者进行解耦
 * 这种类型的设计模式属于行为型模式。
 */
public class Test {

    public static void main(String[] args) {
        // demo1测试 -- 级别高输出内容多
        // LittleDog dog1 = new LittleDog(1, null);
        // MiddleDog dog2 = new MiddleDog(2, dog1);
        // BigDog dog3 = new BigDog(3, dog2);
        // dog3.process(3, "print big/middle/small");
        // System.out.println();
        // dog3.process(2, "print middle/small");
        // System.out.println();
        // dog3.process(1, "print small");

        // demo2测试 -- 解决if...else if...else问题
        // 使用单例模式获取对象
        Dog dog = DogSingle.getInstance();
        dog.process(1);
    }
}
